package so.obligatorio.procesos;

import so.obligatorio.ManejadorColas;
import so.obligatorio.Reloj;

/**
 * Es el punto de venta que atiende a los grandes compradores
 *
 */
public class PDVOrganizacion extends PDV{

	@Override
	protected void procesar() {
		ManejadorColas mc = ManejadorColas.getInstance();
		Cliente c = null;
		try {
			mc.getSemGrandesCompradores().acquire();
			if (mc.getGrandesCompradores().size() > 0) {
				c = mc.getGrandesCompradores().get(0);
				mc.getGrandesCompradores().remove(0);
			}
			mc.getSemGrandesCompradores().release();

			if (c != null) {
				boolean entradasObtenidas = obtenerEntradas(c.getCantidad());
	
				//Marca el turno en el que sale el cliente
				c.setTurnoSalida(Reloj.getInstance().getTurno());
				mc.getSemTerminados().acquire();
				//Lo pone en la lista de terminados
				mc.getClientesTerminados().add(c);
				mc.getSemTerminados().release();
			}
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

	
}
